其他
Spring Boot 版的低代码开发平台
diboot 的设计理念
diboot 主要技术栈
后端 Java + 关系数据库,跟紧 Spring 体系 (Spring Boot、Spring Cloud) ORM 站队 Mybatis,通用 Mappe r框架选用 Mybatis-plus 权限: spring boo 版本使用 Shiro+JWT;spring cloud 版本使用 spring security + oauth2 前后分离,前端选型 Vue,支持 ElementUI 和 Antd vue pro
diboot 基础组件
1、 diboot-core: 精简优化内核:写的更少,性能更好
单表CRUD无SQL 关联绑定无SQL(注解自动绑定) 数据字典无SQL(注解自动绑定) 跨表查询无SQL(自动构建QueryWrapper与查询) BaseService扩展增强,支持常规的单表及关联开发场景接口 其他常用工具类、状态码、异常处理的更优实践封装
2、IAM 身份认证基础组件 及 配套VUE前端框架(diboot-antd-admin、diboot-element-admin)
开箱即用的RBAC角色权限模型与预置组织人员岗位模型 基于无状态token的认证授权,支持刷新token 简化的BindPermission注解,支持兼容shiro的简化权限配置与自动鉴权 自动提取需要鉴权的后端接口, 借助前端功能方便配置菜单按钮权限 无缝适配redis,引入redis依赖即可启用shiro的redis缓存 支持基于注解的数据权限实现、简化的Log注解记录操作日志等 支持灵活的扩展能力(扩展多种登录方式、灵活替换用户实体类、自定义缓存等)
3、diboot-file 文件相关处理组件
EasyExcel轻量封装,支持Java注解校验与 @ExcelBind*
注解实现字典及关联字段的name-value
转换,并提供完善的校验错误提示文件存储接口化,预置本地存储,简单扩展OSS、分布式存储等实现 封装常用的文件上传下载、图片压缩水印等常用处理
4、diboot-scheduler 定时任务组件
Quartz定时任务统一管理及日志的最佳实践封装 @CollectThisJob
注解提供定时任务定义,自动收集供前端选择
5、diboot-message 消息通知组件
通用的消息模板&模板变量的设计方案 支持多通道的消息通知发送
6、diboot-mobile 移动端组件
提供了配套的 diboot-mobile-ui
,内置了多种登录方式支持 账号密码登录、微信小程序登录(自动注册)微信公众号登录(自动注册)
diboot-core (diboot-core-starter) 使用步骤
引入依赖
<groupId>com.diboot</groupId>
<artifactId>diboot-core-spring-boot-starter</artifactId>
<version>{latestVersion}</version>
</dependency>
配置参数(数据源)
spring.datasource.url=jdbc:mysql://localhost:3306/diboot_example?characterEncoding=utf8&serverTimezone=GMT%2B8
spring.datasource.username=diboot
spring.datasource.password=123456
spring.datasource.hikari.maximum-pool-size=5
spring.datasource.hikari.driver-class-name=com.mysql.cj.jdbc.Driver
-------------------------------------------------------------------------
#diboot-core-spring-boot-starter的可选参数配置:
# 是否初始化sql,默认true,初始化之后(或非开发环境)可以改为false关闭检测
diboot.core.init-sql=false
配置config类
diboot-core-starter
默认预置了 mybatis-plus 的分页配置(使用 mybatis-plus 3.4.x的 MybatisPlusInterceptor 最新配置方式)。如果您依赖的是core-starter
,则无需再次配置 mybatis-plus 的分页。Interceptor
,则需要重新定义 MybatisPlusInterceptor
。示例如下:public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return interceptor;
}
//同时core-starter中也默认配置了HttpMessageConverters,如果需要更改默认配置, 则需要在配置类中重新定义HttpMessageConverters。
@Bean
public HttpMessageConverters jacksonHttpMessageConverters() {
...
}
diboot 新手体验
File -> New -> Project from version control...
"菜单打开克隆项目对话框:https://gitee.com/dibo_software/playground.git
END
往期精彩Logback 自定义日志脱敏组件
Spring IOC 为什么能降低耦合?
HTTP 3 势头这么猛,它的优势在哪里?
千万级数据查询:CK、ES、RediSearch 谁才是王炸?
关注后端面试那些事,回复【2022面经】
获取最新大厂Java面经